";
echo "L'età di Michele è: " . $eta;
echo "
";
/*
considerazioni sulla tipologia dei dati che si possono associare alle variabili
*/
$x = 10;
echo "il valore della x è: " . $x . "
";
/*
--- Argomento 1 ---
dimostrazione di come le assegnazioni delle variabili sono collegate ai valori. Come assegnare le assegnazioni per referenza
*/
/*
una variabile può prendere il valore da un altra variabile
*/
$y = $x;
echo "il valore della y è: " . $y . "
";
/*
andiamo a cambiare il valore della variabile x e stampiamo entrambi i valori
*/
$x = 20;
echo "il valore della x è: " . $x . "
";
echo "il valore della y è: " . $y . "
";
/*
questo perchè per default le assegnazioni in php vanno per valore,
invece se volessimo fare una assegnazione per referenza dobbiamo utilizzare il &
in quanto & indica a Php di puntare al riferimento della variabile e non al suo valore
--- fare la modifica per verificare $y = &$x; ---
*/
/*
--- Argomento 2 ---
Perchè definiamo php un linguaggio tipizzato dinamicamente?
*/
/*
PHP è un linguaggio tipizzato dinamicamente, il che significa che per impostazione predefinita
non è necessario specificare il tipo di una variabile,
poiché questo verrà determinato in fase di esecuzione.
*/
$z = 700;
echo $z . "
";
$z = "sono diventato una stringa";
echo $z . "
";
/*
-- Argomento 3 --
Possiamo utilizzare delle variabili per richiamare altre variabili
*/
$storico = "Cesare, l'uomo che ha reso grane Roma";
$spionaggio = 'La spia che venne dal freddo';
$romanzo = "Assassinio sull'Orient Express";
$fantascienza = "Cronache marziane";
$giallo = 'La ragazza senza nome';
$avventura = 'Il giro del mondo in 80 giorni';
$azione = 'Rambo';
$fantasy = 'I grandi sogni dei piccoli uomini';
$libro = 'giallo';
echo 'oggi ti è stato assegnato questo libro: ' . $$libro . "
";
/*
$$libro => il primo $ è la definizione di una variabile; il secondo blocco $lingua indica la
variabile che vogliamo utilizzare e quindi diventerà $giallo
e potrà essere modificata con altre variabili
Questo è molto utile per rendere dinamico il nostro codice
*/
/*
secondo esempio
*/
$inglese = 'Hi';
$francese = 'Salut';
$spagnolo = 'Hola';
$italiano = 'Ciao';
$lingua = 'spagnolo';
echo $$lingua . ' a tutti i miei amici' . "
";
/*
--- Argomento 4 ---
Scrittura del codice php per generare codice html. Fare un esempio con un testo in elenco
*/
$invio = "
";
echo "Stampa dei risultati:";
echo $invio;
echo "
";
echo "- " . "Primo: Salvatore". "
";
echo $invio;
echo "- " . "Secondo: Michele". "
";
echo $invio;
echo "- " . "Terzo: Federico". "
";
echo "
";
/*
qui abbiamo dichiarato una variabile $invio che ci permette di utilizzare il ritorno a capo con br.
la funzione echo serve per utilizzare la variabile e per visualizzare le stringhe di testo
*/
/*
--- Argomento 5 ---
Scrittura del codice html utilizzando Heredoc
*/
$str1 = <<
Primo: Salvatore
$invio
Secondo: Michele
$invio
Terzo: Federico
STRING;
echo $str1;
/*
questo strumento ci permette di snellire il codice:
è necessario utilizzare <<< seguito da un identificatore come apertura dell'Heredoc.
Ci permette di: evitare l'utilizzo della funzione echo, evitare l'utilizzo degli apici,
di evitare il . per concatenare il testo e di evitare il ; per il fine istruzione.
E' necessario ripetere l'identificatore utilizzato seguito dal ; senza ulteriori aggiunte
*/
/*
--- Argomento 6 ---
Scrittura del codice html utilizzando Nowdoc
*/
$str2 = <<<'STR'
$invio
- Primo: Salvatore
$invio
- Secondo: Michele
$invio
- Terzo: Federico
STR;
echo $str2;
/*
è del tutto simile ad Heredoc con due differenze sostanziali:
il marker è racchiuso tra apici in fase di definizione e non viene eseguito il parsing delle variabili.
il parsing delle variabili si riferisce al modo in cui le variabili vengono interpretate
all’interno delle stringhe.
*/
/*
--- Argomento 7 ---
Ci sono quattro modi per scrivere un numero intero
*/
echo 11, "
";
echo 011, "
";
echo 0x11, "
";
echo 0b00000011 ;
/*
Apparentemente sembrano tutti rappresntare il numero 11 ma rappresentano numeri diversi:
- 11 rappresenta un numero in base decimale e ci restituisce il numero 11
- 011 rappresenta un numero in base ottale, in ottale le cifre possono arrivare ad un massimo di 7 e
per essere distinte dai decimali devono iniziare con uno 0. L'ottale è un modo compatto per rappresentare numeri binari con tre bit alla volta.
Come va letto: la prima cifra (si parte sempre con la lettura da destra verso sinistra) vale quello che sta
indicato cioè nel nostro caso 1; il secondo 1 corrisponde a 1*8^1 cioè 8: quindi 1+8 =9
- 0x11 rappresenta un numero esadecimale, dove la cifra più grande che può apparire è 15.
Quindi i numeri che iniziano con 0x rappresentano i numeri esadecimali.
Siccome i nostri numeri arabi terminano a 9 dobbiamo utilizzare delle lettere
(dalla A che vale 10 fino alla F che vale 15)
Come va letto: la prima cifra è 1; la seconda cifra è 1*16^1 cioè 16: 1 + 16 = 17
- 0b00000011 rappresenta un numero binario, quindi un numero che inizia con 0b rappresenta un numero binario.
Come va letto: la prima cifra è 1; la seconda cifra è 1*2^1 cioè 2: 1 + 2 = 3
*/
/*
--- Argomento 8 ---
floating point e utilizzo delle notazioni scientifiche esponenziali.
I numeri floating point sono i numeri che hanno una parte intera e una parte decimale
*/
echo 3.14, "
" ;
echo .14, "
" ;
/*
- .14 la parte intera del floatingo point può anche essere omessa e in questo caso nella stampa
sarà considerato come unità lo zero.
*/
echo 31.4E-1, "
" ;
echo 0.0314E+2, "
" ;
echo 1E+9 ;
/*
Una notazione alternativa è la notazione scientifica esponenziale.
La notazione scientifica è una rappresentazione compatta di certi numeri.
- 31.4E-1 nella notazione scientifica esponenziale c'è una prima parte che è un numero
floating point (31.4) che va moltiplicato per 10 elevato all'esponente indicato dopo la E.
Come va letto: 31.4*10^-1 che possiamo tradurre in modo equivalente 31.4*(1/10), quindi dividere per 10;
allo stesso modo elevare un numero alla -3 vorrà dire dividerlo per mille.
Questo come si traduce: se l'esponente è negativo dobbiamo spostare il numero
(verso sinistra) di tante posizioni corrispondenti al valore dell'esponente
- 0.0314E+2 nel caso in cui l'esponente è positivo vorrà dire moltiplicare per dieci, per cento...
in questo caso la moltiplicazione è *100
Questo come si traduce: se l'esponente è positivo si sposta (verso destra) di tante posizioni corrispondenti
al valore dell'esponente
- 1E+9 corrisponde a un miliardo (9 zeri). Qui non essendoci una parte decimale da considerare
questa notazione comporta l'aggiunta di zeri
*/
/*
--- Argomento 9 ---
utilizzo della funzione number_format
*/
/*
La funzione number_format() in PHP è una funzione che consente di formattare i numeri
in modo più leggibile e presentabile. Questa funzione è molto utile per la formattazione di numeri
a scopo di visualizzazione, ad esempio per mostrare i prezzi in un formato usabile per l'utente.
sintassi completa della funzione
number_format ($numero, $quanti_decimali[facoltativo],
$separatore_decimali[facoltativo], $separatore_migliaia[facoltativo])
*/
echo $invio;
echo number_format("1000000")."
";
echo number_format("1000000",2)."
";
echo number_format("1000000",2,",",".");
/*
--- Argomento 10 --- Esempio di espressioni nelle variabili
Alle variabili possiamo assegnare altre espressioni.
Le stesse variabili possono contenere altre variabili
*/
echo $invio;
$costo = 120;
$iva = 120*.22;
$costo_ivato = $costo + $iva ;
echo "Costo senza iva: $costo. IVA: $iva. Costo ivato: $costo_ivato";
echo $invio;
/*
Prima particolarità importante del php è quella di poter utilizzare le variabili all'interno delle stringhe
*/
echo "Costo senza iva: \$costo. IVA: \$iva. Costo ivato: \$costo_ivato";
/*
Con il \ vi è una forzatura a non far considerare una variabile in quanto tale ma come testo
*/
echo $invio;
echo 'Costo senza iva: $costo. IVA: $iva. Costo ivato: $costo_ivato';
/*
L'utilizzo del'apice singolo comporta la lettura del contenuto solo come stringa
*/
echo $invio;
echo "Costo senza iva: {$costo}€. IVA: {$iva}€. Costo ivato: {$costo_ivato}€";
/*
L'ulizzo delle {} come delimitatori ci permettono di utilizzare le variabili senza che il loro utilizzo
venga interferito con altre stringhe
*/
?>